Traditionally, there has been considerable overhead for anyone who wants to get into an online gaming field by writing an agent. Some of the common uses of agents include agent-based modeling or simulations, which is usually of individuals in social scenarios. For example, such simulations include simulations of the classic Prisoner's Dilemma. To run the simulations, a user is required to install a software package on his local computer. To create an agent for use in the simulation, the user must write it in a specific programming language, sometimes a difficult programming language. If the simulation is competitive (e.g. Prisoner's Dilemma), the user runs his agent against agent(s) written by other authors. So, the user must seek out others who have written agents, and then trust that those agents do not threaten his computer system.
In video game simulations, video games providers often allow their users to write new game code (“mods”) and link it to the game running on the user's computer. Users can write mods to customize the behavior of characters in the game, i.e. can write agents. However, a game requires extraordinary technical ability. It also exposes the user's computer to security risks if the user installs a mod from an untrusted party.
To submit an agent a user must write and deploy server software that communicates each move via a custom protocol when a central client program requests the agent's move. The same issues arise repeatedly: the user must have technical proficiency; the user must know a particular programming language; other users' agents are hard to find and insecure to run. In short, the user, who has an agent behavior in mind and wants only to put it into code and run it, is required to engage in a great deal of infrastructure. Such requirements are difficult for some users to develop and deploy.